Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

270
Vistas
Error "error: valor de caso duplicado" al usar goto en la declaración de cambio

Estaba tratando de usar la declaración goto para viajar entre diferentes switch-cases . Entiendo, no es preferible usar goto ya que haría que el programa fuera difícil de entender, pero realmente lo necesito.

Aquí está la versión de ejemplo de mi código:

 switch(something){ case "c1": //some code break; case "c2": //some code break; case "c3": if(condition1) goto case "c1"; if(condition2) goto case "c2"; default: break; }

Ahora, cuando ejecuto el código, aparece el siguiente error error: duplicate case value que se aplica tanto al goto case "c1" como al goto case "c2" .

No estoy seguro de por qué el compilador está pensando que el goto en un switch-case está redefiniendo otro case en la declaración de cambio con la misma condición y, por lo tanto, arroja ese error duplicado. Se agradece cualquier ayuda y las razones de este error.

¡Gracias!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

En cualquier caso, la declaración de cambio no tiene sentido porque está utilizando literales de cadena como etiquetas de casos.

 switch(something){ case "c1": //some code break; case "c2": //some code break; case "c3": if(condition1) goto case "c1"; if(condition2) goto case "c2"; default: break; }

La expresión en la declaración de cambio se convierte en un tipo integral o de enumeración que no se puede convertir implícitamente en punteros o literales de cadena.

Tal vez necesite usar caracteres literales como por ejemplo

 case 'c1':

El segundo problema es que no puede usar etiquetas de casos con sentencias goto. Puede usar con las sentencias goto solo etiquetas que se presentan como identificadores. La sintaxis de la instrucción goto es

 goto identifier ;

Entonces, el compilador piensa que las etiquetas de casos utilizadas en las instrucciones goto redefinen las etiquetas de casos ya introducidas.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda